Remove gtk_dialog_run() from GtkMountOperation
authorEmmanuele Bassi <ebassi@gnome.org>
Thu, 30 Apr 2020 12:43:17 +0000 (13:43 +0100)
committerEmmanuele Bassi <ebassi@gnome.org>
Tue, 12 May 2020 12:15:16 +0000 (13:15 +0100)
gtk/gtkmountoperation.c

index 1347cd489e0a6beb14b5ff7541921643cec73919..c39ef85aac2371e1df5dd66840bf1660db457ac3 100644 (file)
@@ -1343,6 +1343,18 @@ update_process_list_store (GtkMountOperation *mount_operation,
   g_array_unref (pid_indices_to_remove);
 }
 
+static void
+on_dialog_response (GtkDialog *dialog,
+                    int        response)
+{
+  /* GTK_RESPONSE_NONE means the dialog were programmatically destroy, e.g. that
+   * GTK_DIALOG_DESTROY_WITH_PARENT kicked in - so it would trigger a warning to
+   * destroy the dialog in that case
+   */
+  if (response != GTK_RESPONSE_NONE)
+    gtk_window_destroy (GTK_WINDOW (dialog));
+}
+
 static void
 on_end_process_activated (GtkModelButton *button,
                           gpointer user_data)
@@ -1379,7 +1391,6 @@ on_end_process_activated (GtkModelButton *button,
   if (!_gtk_mount_operation_kill_process (pid_to_kill, &error))
     {
       GtkWidget *dialog;
-      gint response;
 
       /* Use GTK_DIALOG_DESTROY_WITH_PARENT here since the parent dialog can be
        * indeed be destroyed via the GMountOperation::abort signal... for example,
@@ -1396,14 +1407,8 @@ on_end_process_activated (GtkModelButton *button,
                                                 error->message);
 
       gtk_widget_show (dialog);
-      response = gtk_dialog_run (GTK_DIALOG (dialog));
 
-      /* GTK_RESPONSE_NONE means the dialog were programmatically destroy, e.g. that
-       * GTK_DIALOG_DESTROY_WITH_PARENT kicked in - so it would trigger a warning to
-       * destroy the dialog in that case
-       */
-      if (response != GTK_RESPONSE_NONE)
-        gtk_window_destroy (GTK_WINDOW (dialog));
+      g_signal_connect (dialog, "response", G_CALLBACK (on_dialog_response), NULL);
 
       g_error_free (error);
     }